package org.eae.eldf.service.module;

import java.util.List;

import org.eae.eldf.dto.module.ModuleMenuDto;
import org.eae.eldf.dto.module.ModuleRolePurviewDto;
import org.eae.eldf.entity.module.ModuleInfo;
import org.eae.eldf.entity.module.ModuleMenu;
import org.eae.eldf.framework.pager.Pagination;
import org.eae.eldf.framework.service.BaseService;

public interface ModuleMenuService extends BaseService<ModuleMenu>{
	
public Pagination<ModuleMenu> queryPageModuleMenuList(Pagination<ModuleMenu> pager,String moduleName);
	
	public void insertModuleMenu(ModuleMenu ModuleMenu);
	
	/**
	 * 置 菜单为已删除
	 * @param id
	 */
	public void delete(Long id);
	
	/**
	 * 根据主键查询
	 * @param id
	 * @return
	 */
	public ModuleMenu queryById(Long id);
	
	/**
	 * 查询所有的module
	 * @return
	 */
	public List<ModuleInfo> queryModuleList();
	
	/**
	 * 根据moduleInfoId查询moduluMenu
	 * @param moduleInfoId
	 * @return
	 */
	
	public List<ModuleMenu> queryModuleMenuListById(long moduleInfoId);
	
	/**
	 * 根据parentId查询moduluMenu
	 * @param parentId
	 * @return
	 */
	
	public List<ModuleMenu> queryModuleMenuListByParentId(long parentId);

	/**
	 * 查询模块角色相关 菜单 并转成菜单树DTO
	 * @param moduleInfoId
	 * @return
	 */
	public List<ModuleRolePurviewDto>  querryZtreeMenuList(Long moduleInfoId);
	
	/**
	 * 通过模块id查询所有menu+分页
	 * @param pager
	 * @param moduleInfoId
	 * @return
	 */
	public Pagination<ModuleMenuDto> pageMenuList(Pagination<ModuleMenuDto> pager,Long moduleInfoId,Boolean isMenu) ;
		
	public void insertMenu(ModuleMenuDto menu);
	
	public void updateMenu(ModuleMenuDto menu);
	
	/**
	 * 通过父级id查询子级
	 * @param id
	 * @return
	 */
	
	public List<ModuleMenu> queryModuleListByParentId(Long id);

}
